package cn.dengta.webapp.trade.vo;

import java.util.Map;

import cn.dengta.webapp.base.vo.AbstractVO;
import cn.dengta.webapp.trade.entity.UserCoin;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import me.codeplayer.util.Cmp;
import me.codeplayer.util.StringUtil;

@Setter
@Getter
@Accessors(chain = true)
public class UserCoinVO extends AbstractVO<UserCoin> {

	public Map<String, Object> user;
	public Map<String, Object> agent;
	protected Integer totalAmount;
	/** 可用余额（包含 <code>freePart</code>） */
	protected Integer activeAmount;
	/** 冻结金额（因某些业务需要，需提前冻结的钻石额度。出于性能考虑，可能会放在 Redis 里面，数据可能会有一定的延迟） */
	protected Integer frozenAmount;
	/** 赠送部分（参与平台活动免费赠送的钻石额度） */
	protected Integer freePart;
	/**
	 * ios支付平台
	 * true=APP内购
	 * false=H5
	 */
	private Boolean iosPlatform = Boolean.TRUE;
	/** IOS H5支付路径 */
	protected String h5PayUrl;

	public static UserCoinVO from(UserCoin source) {
		return copy(source, UserCoinVO::new);
	}

	public static UserCoinVO fromFront(UserCoin source) {
		return copy(source, UserCoinVO::new, "id");
	}

	public String getActiveAmount_() {
		return StringUtil.toString(activeAmount) + (Cmp.nullToZero(freePart) != 0 ? "（" + freePart + "）" : "");
	}

}
